package py.com.alfa.escriba.gui.rest.services;

import java.io.IOException;
import java.util.List;

import py.com.alfa.escriba.gui.dto.GenerateEscrituraDTO;
import py.com.alfa.escriba.gui.dto.admin.ControlesDTO;
import py.com.alfa.escriba.gui.dto.admin.ControlesEscriturasDTO;
import py.com.alfa.escriba.gui.dto.admin.ControlesFormulariosInfoDTO;
import py.com.alfa.escriba.gui.dto.admin.ControlesInfoDTO;
import py.com.alfa.escriba.gui.dto.admin.ControlesseguimientoDTO;
import py.com.alfa.escriba.gui.dto.admin.ControlestextoDTO;
import py.com.alfa.escriba.gui.dto.query.ControlesQueryDTO;
import py.com.alfa.escriba.gui.dto.query.ControlesRequestDTO;

public interface ControlesService {
	final String SECURE_PATH = "/secure";
	final String BASE_URL = "/controles";


	final String LIST_CONTROL = SECURE_PATH.concat(BASE_URL);
	final String CREA_CONTROL = SECURE_PATH.concat(BASE_URL);
	final String BUS_CONTROL = SECURE_PATH.concat(BASE_URL).concat("/buscar");
	final String GET_CONTROL = SECURE_PATH.concat(BASE_URL.concat("/{id}"));
	final String UPD_CONTROL = SECURE_PATH.concat(BASE_URL.concat("/{id}"));
	final String DEL_CONTROL = SECURE_PATH.concat(BASE_URL.concat("/{id}"));
	final String LIST_REQUEST = SECURE_PATH.concat(BASE_URL.concat("/listRequestControles"));
	
	final String FORMULARIOS_BY_CONTROL = SECURE_PATH.concat(BASE_URL.concat("/formularios/getByIdControl/{id}"));
	final String MB_FOMULARIOS = SECURE_PATH.concat(BASE_URL.concat("/formularios/{id}"));
	final String CONTOLES_SEGUIMIENTO = SECURE_PATH.concat(BASE_URL.concat("seguimiento"));
	final String MB_CONTOLES_SEGUIMIENTO = SECURE_PATH.concat(BASE_URL.concat("seguimiento/{id}"));
	final String GET_CONTOLES_SEGUIMIENTO = SECURE_PATH.concat(BASE_URL.concat("seguimiento/byIdControl/{id}"));
	
	final String MB_CONTROLES_ESCRITURA=SECURE_PATH.concat(BASE_URL.concat("/escrituras/{id}"));
	final String GET_CONTROLES_ESCRITURA=SECURE_PATH.concat(BASE_URL.concat("/escrituras/byIdControl/{id}"));
	final String GENERATE_ESCRITURA=SECURE_PATH.concat(BASE_URL.concat("/generarescritura/{idCtrl}/{idTemplate}"));
	
	final String MB_CONTROLES_TEXTO=SECURE_PATH.concat(BASE_URL.concat("/textos/{id}"));
	final String GET_CONTROLES_TEXTO=SECURE_PATH.concat(BASE_URL.concat("/textos/byIdControl/{id}"));
	
	public List<ControlesDTO> listControles() throws IOException;
	public List<ControlesInfoDTO> buscarControles(ControlesQueryDTO control) throws IOException;
	public ControlesInfoDTO createControl(ControlesInfoDTO control) throws IOException;
	public ControlesInfoDTO saveControl(ControlesInfoDTO control) throws IOException;
	public void deleteControl(Long id) throws IOException;
	public ControlesInfoDTO showControl(Long id) throws IOException;
	public List<ControlesRequestDTO> listControlesRequest(ControlesQueryDTO control) throws IOException;
		
	public List<ControlesFormulariosInfoDTO> getControlesFormulariosByIdControl(Long idControl) throws IOException;
	public ControlesFormulariosInfoDTO getControlesFormulariosById(Long id) throws IOException;
	public ControlesInfoDTO saveControlesFormularios(ControlesInfoDTO dto) throws IOException;
	
	public List<ControlesseguimientoDTO> listControlesseguimiento() throws IOException;
	public List<ControlesseguimientoDTO> listControlesseguimientoByIdControl(Long id) throws IOException;
	public ControlesseguimientoDTO showControlesseguimiento(Long id) throws IOException;
	public ControlesseguimientoDTO saveControlesseguimiento(ControlesseguimientoDTO dto) throws IOException;
	public ControlesseguimientoDTO createControlesseguimiento(ControlesseguimientoDTO dto) throws IOException;
    public void deleteControlesseguimiento(Long id) throws IOException;
    
	public List<ControlesEscriturasDTO> getControlesEscriturasByIdControl(Long idControl) throws IOException;
	public ControlesEscriturasDTO getControlesEscriturasById(Long id) throws IOException;
	public ControlesInfoDTO saveControlesEscrituras(ControlesInfoDTO control) throws IOException;
	
	public ControlestextoDTO getControlesTextoByIdControl(Long idControl) throws IOException;
	public ControlestextoDTO getControlesTextoById(Long id) throws IOException;
	public ControlesInfoDTO saveControlesTexto(ControlesInfoDTO control) throws IOException;
	
	public GenerateEscrituraDTO generateEscritura(Long idCcontrol, Long idTemplate) throws IOException;
	
}
